iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
Software Development

Leetcode 習慣養成之路系列 第 27

Day 27 - 150. Evaluate Reverse Polish Notation

  • 分享至 

  • xImage
  •  

題目說明

給定一個由 Reverse Polish notation 組成的字符串,回傳其計算結果

解題思路

這體可以使用 stack 來解,當遇到數字時,將數字 append 進 stack 中,當遇到 opreators 時,將 stack 中的數字 pop 兩個出來,要注意順序,最後 pop 出來的要擺在被 operate 的 位置。
依照 +, -, *, / 計算完後的結果放到 stack 中,以此類推直到結束

最後回傳 stack 內的數值即為所求

程式碼

class Solution:
    def evalRPN(self, tokens: List[str]) -> int:
        
        operators = set(["+", "-", "*", "/"])
        s = deque()
        
        for t in tokens:
            if t not in operators:
                num = int(t)
                s.append(num)
            else:
                last = s.pop()
                first = s.pop()
                if t == "+":
                    result = first + last
                elif t == "-":
                    result = first - last
                elif t == "*":
                    result = first * last
                else:
                    result = int(first / last)
                s.append(result)
        return s.pop()

上一篇
Day 26 - 155. Min Stack
下一篇
Day 28 - 20. Valid Parentheses
系列文
Leetcode 習慣養成之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言